// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.statement.SQLCreateStatement;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;

#include "OracleCreateSynonymStatement.h"
#include "../../../../ast/SQLName.h"
#include "../../visitor/OracleASTVisitor.h"

// @Override
void OracleCreateSynonymStatement::accept0(OracleASTVisitor_ptr visitor)
{
  if (visitor->visit(SharedObject(OracleCreateSynonymStatement)))
  {
    acceptChild(visitor, name);
    acceptChild(visitor, object);
  }
}

BOOL_ptr OracleCreateSynonymStatement::isPublic()
{
  return isPublic_;
}

void OracleCreateSynonymStatement::setPublic(BOOL_ptr value)
{
  isPublic_ = value;
}

SQLName_ptr OracleCreateSynonymStatement::getName()
{
  return name;
}

void OracleCreateSynonymStatement::setName(SQLName_ptr name)
{
  if (name != nullptr)
  {
    name->setParent(SharedObject(OracleCreateSynonymStatement));
  }
  this->name = name;
}

SQLName_ptr OracleCreateSynonymStatement::getObject()
{
  return object;
}

void OracleCreateSynonymStatement::setObject(SQLName_ptr object)
{
  if (object != nullptr)
  {
    object->setParent(SharedObject(OracleCreateSynonymStatement));
  }
  this->object = object;
}

BOOL_ptr OracleCreateSynonymStatement::isOrReplace()
{
  return orReplace;
}

void OracleCreateSynonymStatement::setOrReplace(BOOL_ptr orReplace)
{
  this->orReplace = orReplace;
}
